<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Demo</title>
    <!-- 请勿在项目正式环境中引用该 layui.css 地址 -->
    <link href="../../../layui/css/layui.css" rel="stylesheet">
</head>
<body>
<style>
    .demo-reg-container {
        width: 320px;
        margin: 21px auto 0;
    }

    .demo-reg-other .layui-icon {
        position: relative;
        display: inline-block;
        margin: 0 2px;
        top: 2px;
        font-size: 26px;
    }
</style>
<form class="layui-form">
    <div class="demo-reg-container">
        <div class="layui-form-item">
            <div class="layui-row">
                <div class="layui-col-xs7">
                    <div class="layui-input-wrap">
                        <div class="layui-input-prefix">
                            <i class="layui-icon layui-icon-cellphone"></i>
                        </div>
                        <input type="text" name="cellphone" value="" lay-verify="required|phone" placeholder="手机号"
                               lay-reqtext="请填写手机号" autocomplete="off" class="layui-input" id="reg-cellphone">
                    </div>
                </div>
                <div class="layui-col-xs5">
                    <div style="margin-left: 11px;">
                        <button type="button" class="layui-btn layui-btn-fluid layui-btn-primary"
                                lay-on="reg-get-vercode">获取验证码
                        </button>
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-vercode"></i>
                </div>
                <input type="text" name="vercode" value="" lay-verify="required" placeholder="验证码"
                       lay-reqtext="请填写验证码" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-password"></i>
                </div>
                <input type="password" name="password" value="" lay-verify="required" placeholder="密码"
                       autocomplete="off" class="layui-input" id="reg-password" lay-affix="eye">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-password"></i>
                </div>
                <input type="password" name="confirmPassword" value="" lay-verify="required|confirmPassword"
                       placeholder="确认密码" autocomplete="off" class="layui-input" lay-affix="eye">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-username"></i>
                </div>
                <input type="text" name="nickname" value="" lay-verify="required" placeholder="昵称" autocomplete="off"
                       class="layui-input" lay-affix="clear">
            </div>
        </div>
        <div class="layui-form-item">
            <input type="checkbox" name="agreement" lay-verify="required" lay-skin="primary" title="同意">
            <a href="#terms" target="_blank" style="position: relative; top: 6px; left: -15px;">
                <ins>用户协议</ins>
            </a>
        </div>
        <div class="layui-form-item">
            <a href="http://127.0.0.1:8086/tologins">

                注册
            </a>

        </div>
        <div class="layui-form-item demo-reg-other">
            <label>社交账号注册</label>
            <span style="padding: 0 21px 0 6px;">
        <a href="javascript:;"><i class="layui-icon layui-icon-login-qq" style="color: #3492ed;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat" style="color: #4daf29;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo" style="color: #cf1900;"></i></a>
      </span>
            <a href="http://127.0.0.1:8086/tologins">登录已有帐号</a>
        </div>
    </div>
</form>

<!-- 请勿在项目正式环境中引用该 layui.js 地址 -->
<script src="../../../layui/css/layui.css"></script>
<script>
    layui.use(function () {
        var $ = layui.$;
        var form = layui.form;
        var layer = layui.layer;
        var util = layui.util;

        // 自定义验证规则
        form.verify({
            // 确认密码
            confirmPassword: function (value, item) {
                var passwordValue = $('#reg-password').val();
                if (value !== passwordValue) {
                    return '两次密码输入不一致';
                }
            }
        });

        // 提交事件
        form.on('submit(demo-reg)', function (data) {
            var field = data.field; // 获取表单字段值
            // 是否勾选同意
            if (!field.agreement) {
                layer.msg('您必须勾选同意用户协议才能注册');
                return false;
            }


            // 此处可执行 Ajax 等操作
            // …
            // 转换成json
            var jsonf = JSON.stringify(field);
            // layer.msg(jsonf);
            $.ajax({
                url: '/toregists', // Spring MVC 控制器路径
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                data: jsonf,
                // 服务器端返回的预期数据类型
                // dataType: 'json',
                // 发送成功以后的回调函数
                success: function (successResponseData) {
                    // 请求成功后的操作
                    layer.msg(successResponseData);
                },
                // 发送失败后的回调函数
                error: function (failedResponseData) {
                    // 请求失败的操作
                    layer.msg(failedResponseData);
                }
            });

            return false; // 阻止默认 form 跳转
        });

        // 普通事件
        util.on('lay-on', {
            // 获取验证码及退出
            'reg-get-vercode': function (othis) {
                var isvalid = form.validate('#reg-cellphone'); // 主动触发验证，v2.7.0 新增
                // 验证通过
                if (isvalid) {
                    // 执行退出操作
                    logout();
                    // 执行获取验证码逻辑
                    // 模拟发送验证码请求，这里可以替换为实际的发送验证码的逻辑
                    sendVerificationCode();
                }
            }
        });

// 发送验证码函数
        function sendVerificationCode() {
            // 模拟发送验证码请求，实际情况下需要根据具体的业务逻辑发送请求到后端获取验证码
            $.post('/sendVerificationCode', function(data) {
                console.log(data); // 输出后端返回的消息
                // 这里可以根据后端返回的消息执行相应的逻辑
                if (data === 'Verification code sent successfully.') {
                    // 如果验证码发送成功，可以给用户提示
                    layer.msg('验证码发送成功');
                    // 在这里可以启动倒计时等逻辑
                    startCountdown();
                } else {
                    // 如果验证码发送失败，可以给用户提示
                    layer.msg('验证码发送失败，请重试');
                }
            });
        }

// 倒计时函数示例
        function startCountdown() {
            var count = 60; // 倒计时时长，单位：秒
            var timer = setInterval(function() {
                count--;
                // 更新倒计时显示
                $('#countdown').text(count + '秒后重新发送');
                if (count <= 0) {
                    clearInterval(timer);
                    // 倒计时结束，可以重新启用发送验证码按钮
                    $('#reg-get-vercode').prop('disabled', false);
                    $('#countdown').text('获取验证码');
                }
            }, 1000);
        }

        // 退出操作
        function logout() {
            // 在这里添加退出操作的代码，比如发送请求到后端退出接口
            // 例如：
            $.post('/logout', function(data) {
                console.log(data); // 输出后端返回的消息
                // 这里可以根据后端返回的消息执行相应的逻辑
                if (data === 'Logout successful.') {
                    // 如果退出成功，可以执行一些前端清理操作，比如清除本地存储的用户信息等
                    // 例如：
                    localStorage.removeItem('username');
                    localStorage.removeItem('token');
                    // 弹出提示消息
                    layer.msg('退出成功');
                    // 如果需要跳转到登录页，可以在这里执行跳转逻辑
                    // 例如：
                    window.location.href = '/login';
                } else {
                    // 如果退出失败，可以提示用户
                    layer.msg('退出失败，请重试');
                }
            });
        }
    });
</script>

</body>
</html>